package com.excilys.capicsoubank.dao.impl;

import org.springframework.stereotype.Repository;

import com.excilys.capicsoubank.dao.UserDao;
import com.excilys.capicsoubank.entities.User;

/**
 * Dao pour les entités users.
 * 
 * @author Guillaume Lenoir
 * 
 */
@Repository
public class UserDaoImpl extends GenericDaoImpl<User> implements UserDao {

	public UserDaoImpl() {
		super(User.class);
	}

	/**
	 * Recherche de l'utilisateur via son identifiant. Le résultat de la
	 * recherche est unique.
	 * 
	 * @param username
	 *            identifiant de l'utilisateur
	 * @return User Utilisateur étant identifié par son identifiant, le résultat
	 *         est unique
	 */
	@Override
	public User getUserByUsername(String username) {

		String query = "from User user where user.username=:username ";
		User user = (User) getCurrentSession().createQuery(query)
				.setString("username", username).uniqueResult();

		return user;
	}

}
